【アップデート】LambdaでPython3.7がサポートされました!!
はじめに
サーバーレス開発部@大阪の岩田です。 AWSのブログをチェックしていたところ、LambdaがPython3.7に対応したという記事を発見したので早速触ってみました。 https://aws.amazon.com/jp/blogs/compute/python-3-7-runtime-now-available-in-aws-lambda/
マネジメントコンソールを確認
ランタイムの選択肢にPython3.7が追加されています。
バージョンを確認
print (sys.version)
でバージョン情報を出力してみました。
3.7.1が使われているようです!
Python3.7の新機能を試してみる
試しにPython3.7の新機能であるdataclassのデコレータを使って見ました。
import json from dataclasses import dataclass @dataclass class InventoryItem: '''Class for keeping track of an item in inventory.''' name: str unit_price: float quantity_on_hand: int = 0 def total_cost(self) -> float: return self.unit_price * self.quantity_on_hand def lambda_handler(event, context): item = InventoryItem('item1', 100, 10) # TODO implement return { 'statusCode': 200, 'body': json.dumps({ 'total_cost': item.total_cost() }) }
InventoryItemクラスのコンストラクタを特に実装していませんが@dataclass
と記述しておくことで、よしなにやってくれています。
試しにランタイムをPython3.6に変えて試してみると・・・
エラーになり実行できません。想定通りです。
最後に
Pythonをメインに使っている開発者としては地味に嬉しいアップデートです。 Python3.7の新機能をうまく使って、保守性の高い良いコードを書けるように心がけていきたいです!